/*Version 1.0*/
#ifndef PLUME
#define PLUME
#include <glib.h>
#include "Couleur.h"
#include "Coordonnees.h"

/*On utilise un tableau dynamique pour gerer le tableau de coordonnees
  qui indique le placement des points d'encrage de la figure*/

struct sPlume
{
  Coordonnees coorPl;
  Couleur contour,fond;
  double dimX,dimY;
  double epaisseur_contour;
  GArray * tab_coordonnees; /*On utilise les tab dynamiques*/
};
typedef struct sPlume Plume;  

/*Precondition : Plume non initialisee
  Postcondition : Plume initialisee*/
void InitPlume(Plume *p);

/*Precondition : Plume initialisee*/
void CreerPlume(Plume *p,double epaisseur_contour,double dimX,double dimY,Coordonnees c,Couleur contour,Couleur fond);

/*Precondition : Plume initialisee*/
void ModifierFondPlume(Plume *p,Couleur fond);

/*Precondition : Plume initialisee, dimX et dimY >=0*/
void ModifierTaillePlume(Plume *p,unsigned int dimX,unsigned int dimY);

/*Precondition : Plume initialisee, epaisseur_contour >=0)*/
void ModifierContourPlume(Plume *p,Couleur contour,unsigned int epaisseur_contour);

/*Precondition : Plume initialisee*/
void ModifierCoordonneesPlume(Plume *p,Coordonnees c);

/*Precondition : Plume initialisee*/
void RajouterPointEncrage(Plume *p,Coordonnees c);

/*Precondition : Plume initialisee i <=taille utilise du tableau de coordonnees*/
void ModifPointEncrage(Plume *p,unsigned int i,Coordonnees c);

/*Precondition : Plume initialisee, i <=taille utilisee du tableau de coordonnees*/
void SuppPointEncrage(Plume *p,unsigned int i);

/*Precondition : Plume initialisee
  Postcondition : La Plume ne peut plus etre utilisee
  la memoire alloue pour le tableau est supprimee*/
void SupprimerPlume(Plume *p);

#endif
